package com.i2works.smartluolong.web.shiro;

/**
 * shiro授权工具类
 *
 * @author Liu Yutao <koal@vip.qq.com>
 * @date 2018/1/24 14:32
 */

public class ShiroAuthorizationHelper {

//
//    private final CacheManager cacheManager;
//
//    private static Logger log = LoggerFactory.getLogger(ShiroAuthorizationHelper.class);
//
//    @Autowired
//    public ShiroAuthorizationHelper(CacheManager cacheManager) {
//        this.cacheManager = cacheManager;
//    }
//
//    public String realmName() {
//        RealmSecurityManager securityManager = (RealmSecurityManager) SecurityUtils.getSecurityManager();
//        Realm realm = securityManager.getRealms().iterator().next();
//        return realm.getName();
//    }
//
//    /**
//     * 清除用户的授权信息
//     *
//     * @param username
//     */
//    public void clearAuthorizationInfo(String username) {
//        if (log.isDebugEnabled()) {
//            log.debug("clear the " + username + " authorizationInfo");
//        }
//        //ShiroCasRealm.authorizationCache 为shiro自义cache名(shiroCasRealm为我们定义的reaml类的类名)
//        Cache<Object, Object> cache = cacheManager.getCache(realmName() + ".authorizationCache");
//        cache.remove(username);
//    }
//
//    /**
//     * 清除当前用户的授权信息
//     */
//    public void clearAuthorizationInfo() {
//        if (SecurityUtils.getSubject().isAuthenticated()) {
//            clearAuthorizationInfo(ShiroSecurityHelper.getCurrentUsername());
//        }
//    }
//
//    /**
//     * 清除session(认证信息)
//     */
//    public void clearAuthenticationInfo(Serializable JSESSIONID) {
//        if (log.isDebugEnabled()) {
//            log.debug("clear the session " + JSESSIONID);
//        }
//        //shiro-activeSessionCache 为shiro自义cache名，该名在org.apache.shiro.session.mgt.eis.CachingSessionDAO抽象类中定义
//        //如果要改变此名，可以将名称注入到sessionDao中，例如注入到CachingSessionDAO的子类EnterpriseCacheSessionDAO类中
//        Cache<Object, Object> cache = cacheManager.getCache("shiro-activeSessionCache");
//        cache.remove(JSESSIONID);
//    }


}
